Method for providing data science, artificial intelligence and machine learning as-a-service

ABSTRACT

An automated method of predictive model development first cleans up raw supervised and unsupervised training data with a step that uses an algorithm to make every field of every record consistent, cohesive, and productive. Then the resulting flat data is given texture in a next step by a data enrichment algorithm that culls fields that do not contribute to predictive model building and that adds new fields computed from data combinations that are tested to add value to later steps that build different types of predictive models. Another late step for building smart-agents and their entity profiles uses another algorithm that benefits greatly from the cleaned and highly enriched training data. The predictive models and smart-agents and their entity profiles are then rendered as deliverable predictive model markup language documents in a final step executed by a specialized algorithm.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to a method for providing users with datascience and artificial intelligence as-a-service, and that specificallyprovide relevant real-time intelligence from all data sources,regardless of their type, complexity, and volume, by deliveringsupervised and unsupervised learning mode models to users.

Background

Machine learning can use various technics such as supervised learning,unsupervised learning and Reinforcement learning. In supervised learningthe learner is supplied with labeled training instances (set ofexamples), where both the input and the correct output are given. Forexample, historical stock prices are used to guesses future prices. Eachexample used for training is labeled with the value of interest—in thiscase the stock price. A supervised learning algorithm learns from thelabeled values using information such as the day of the week, theseason, the company's financial data, the industry, etc. After thealgorithm has found the best pattern it can, it uses that pattern tomake predictions.

In unsupervised learning, data points have no labels associated withthem. Instead, the goal of unsupervised learning is to identify andexplore regularities and dependencies in data, e.g., the structure ofthe underlying data distributions. The quality of a structure ismeasured by a cost function which is usually minimized to infer optimalparameters characterizing the hidden structure in the data. Reliable androbust inference requires a guarantee that the extracted structures aretypical for the data source, e.g., similar structures have to beextracted from a second sample set of the same data source.

Reinforcement learning maps situations to actions to maximize a scalarreward or reinforcement signal. The learner does not need to be directlytold which actions to take, but instead must discover which actionsyield the best rewards by trial and error. An action may affect not onlythe immediate reward, but also the next situation, and consequently allsubsequent rewards. Trial and error search, and delayed reward, are twoimportant distinguishing characteristics of reinforcement learning.

Supervised learning algorithms use a known dataset to thereafter makepredictions. The dataset training includes input data that producesresponse values. Supervised learning algorithms are used to buildpredictive models for new responses to new data. The larger the trainingdatasets, the better will be the prediction models. Supervised learningincludes classifications in which the data must be separated intoclasses, and regression for continuous-response. Common classificationalgorithms include support vector machines (SVM), neural networks, NaïveBayes classifier and decision trees. Common regression algorithmsinclude linear regression, nonlinear regression, generalized linearmodels, decision trees, and neural networks.

SUMMARY OF THE INVENTION

Briefly, automated method embodiments of the present invention provideadvanced training of predictive models that have conventionally requiredprofessional staffs of data scientists. These advanced methods firstclean up the raw supervised and unsupervised training data with a stepthat uses an algorithm to make every field consistent, cohesive, andproductive. Then the resulting flat data is given texture in a next stepby a data enrichment algorithm that culls fields that do not contributeto predictive model building and that adds new fields computed from datacombinations that are tested to add value to later steps that builddifferent types of predictive models. A later step for buildingsmart-agents and their entity profiles uses another algorithm thatbenefits greatly from the cleaned and highly enriched training data. Thepredictive models and smart-agents and their entity profile definitionsare then rendered as deliverable predictive model markup languagedocuments in a final step executed by a specialized algorithm.

The above and still further objects, features, and advantages of thepresent invention will become apparent upon consideration of thefollowing detailed description of specific embodiments thereof,especially when taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method embodiment of the present inventionthat provides user-service consumers with data science as-a-service;

FIG. 2 is a flowchart diagram of an algorithm for triple data encryptionstandard encryption and decryption as used in the method of FIG. 1;

FIG. 3A is a flowchart diagram of an algorithm for data cleanup as usedin the method of FIG. 1;

FIG. 3B is a flowchart diagram of an algorithm for replacing a numericvalue as used in the method of FIG. 3A;

FIG. 3C is a flowchart diagram of an algorithm for replacing a symbolicvalue as used in the method of FIG. 3A;

FIG. 4 is a flowchart diagram of an algorithm for building trainingsets, test sets, and blind sets, and further for down sampling if neededand as used in the method of FIG. 1;

FIG. 5A is a flowchart diagram of an algorithm for a first part of thedata enrichment as used in the method of FIG. 1;

FIG. 5B is a flowchart diagram of an algorithm for a second part of thedata enrichment as used in the method of FIG. 1 and where more derivedfields are needed to suit quality targets;

FIG. 6 is a flowchart diagram of a method for using the PMML Documentsof FIG. 1 with an algorithm for the run-time operation of parallelpredictive model technologies;

FIG. 7 is a flowchart diagram of an algorithm for the decision engine ofFIG. 6;

FIG. 8 is a flowchart diagram of an algorithm for using ordered rulesand thresholds to decide amongst prediction classes;

FIG. 9 is a flowchart diagram of a method that combines the methods ofFIGS. 1-8 and their algorithms to provide an on-line service forscoring, predictions, and decisions to user-service consumers requiringdata science and artificial intelligence services without their beingrequired to invest in and maintain specialized equipment and software;

FIG. 10 is a flowchart diagram illustrating an apparatus for executingan algorithm for reconsideration of an otherwise final adverse decision,for example, in a payment authorization system a transaction request fora particular amount $X has already been preliminarily “declined”according to some other scoring model;

FIG. 11 is a flowchart diagram of an algorithm for the operational useof smart agents;

FIGS. 12-29 provide greater detail regarding the construction andfunctioning of algorithms that are employed in FIGS. 1-11;

FIG. 12 is a schematic diagram of a neural network architecture used ina model;

FIG. 13 is a diagram of a single neuron in a neural network used in amodel;

FIG. 14 is a flowchart of an algorithm for training a neural network;

FIG. 15 is an example illustrating a table of distance measures that isused in a neural network training process;

FIG. 16 is a flowchart of an algorithm for propagating an input recordthrough a neural network;

FIG. 17 is a flowchart of an algorithm for updating a training processof a neural network;

FIG. 18 is a flowchart of an algorithm for creating intervals of normalvalues for a field in a training table;

FIG. 19 is a flowchart of an algorithm for determining dependenciesbetween each field in a training table;

FIG. 20 is a flowchart of an algorithm for verifying dependenciesbetween fields in an input record;

FIG. 21 is a flowchart of an algorithm for updating a smart-agenttechnology;

FIG. 22 is a flowchart of an algorithm for generating a data miningtechnology to create a decision tree based on similar records in atraining table;

FIG. 23 is an example illustrating a decision tree for a databasemaintained by an insurance company to predict a risk of an insurancecontract based on a type of a car and a age of its driver;

FIG. 24 is a flowchart of an algorithm for generating a case-basedreasoning technology to find a case in a database that best resembles anew transaction;

FIG. 25 is an example illustrating a table of global similarity measuresused by a case-based reasoning technology;

FIG. 26 is an example illustrating a table of local similarity measuresused by a case-based reasoning technology;

FIG. 27 is an example illustrating a rule for use with a rule-basedreasoning technology;

FIG. 28 is an example illustrating a fuzzy rule to specify if a personis tall; and

FIG. 29 is a flowchart of an algorithm for applying rule-basedreasoning, fuzzy logic, and constraint programming to assess thenormality/abnormality of and classify a transaction assess an activity.

DETAILED DESCRIPTION OF THE INVENTION

Computer-implemented method embodiments of the present invention providean artificial intelligence and machine-learning service that isdelivered on-demand to user-service consumers, their clients, and otherusers through network servers. The methods are typically implementedwith special algorithms executed by computer apparatus and delivered tonon-transitory storage mediums to the providers and user-serviceconsumers who then sell or use the service themselves.

Users in occasional or even regular need of artificial intelligence andmachine learning Prediction Technologies can get the essentialdata-science services required on the Cloud from an appropriateprovider, instead of installing specialized hardware and maintainingtheir own software. Users are thereby freed from needing to operate andmanage complex software and hardware. The intermediaries manage useraccess to their particular applications, including quality, security,availability, and performance.

FIG. 1 represents a predictive model learning method 100 that providesartificial intelligence and machine learning as-a-service by generatingpredictive models from service-consumer-supplied training data inputrecords. A computer file 102 previously hashed or encrypted by atriple-DES algorithm, or similar protection. It also possible to send anon-encrypted filed through an encrypted channel. Users of the platformwould upload their data through SSL/TLS from a browser or from a commandline interface (SCP or SFTP). This is then received by a network serverfrom a service consumer needing predictive models. Such encode thesupervised and/or unsupervised data of the service consumer that areessential for use in later steps as training inputs. The records 102received represent an encryption of individual supervised and/orunsupervised records each comprising a predefined plurality ofpredefined data fields that communicate data values, and structured andunstructured text. Such text often represents that found in webpages,blogs, automated news feeds, etc., and very often such contains errorsand inconsistencies.

Structured text has an easily digested form and unstructured text doesnot. Text mining can use a simple bag-of-words model, such as how manytimes does each word occur. Or complex approaches that pull the contextfrom language structures, e.g., the metadata of a post on Twitter wherethe unstructured data is the text of the post.

These records 102 are decrypted in a step 104 with an apparatus forexecuting a decoding algorithm, e.g., a standard triple-DES device thatuses three keys. An example is illustrated in FIG. 2. A series ofresults are transformed into a set of non-transitory, raw-data records106 that are collectively stored in a machine-readable storagemechanism.

A step 108 cleans up and improves the integrity of the data stored inthe raw-data records 106 with an apparatus for executing a dataintegrity analysis algorithm. An example is illustrated in FIGS. 3A, 3B,and 3C. Step 108 compares and corrects any data values in each datafield according to user-service consumer preferences like min, max,average, null, and default, and a predefined data dictionary of validdata values. Step 108 discerns the context of the structured andunstructured text with an apparatus for executing a contextualdictionary algorithm. Step 108 transforms each result into a set offlat-data records 110 that are collectively stored in a machine-readablestorage mechanism.

In a step 112, a test is made to see if a number of records 114 in theset of flat-data records 110 exceeds a predefined threshold, e.g., aboutone hundred million. The particular cutoff number to use is inexact andis empirically determined by what produces the best commercialefficiencies.

But if the number of records 114 is too large, a step 116 then samples aportion of the set of flat-data records 110. An example is illustratedin FIG. 4. Step 116 stores a set of samples 118 in a machine-readablestorage mechanism for use in the remaining steps. Step 116 consequentlyemploys an apparatus for executing a special sampling algorithm thatlimits the number of records that must be processed by the remainingsteps, but at the same time preserves important training data. Thedetails are described herein in connection with FIG. 4.

A modeling data 120 is given a new, amplified texture by a step 122 forenhancing, enriching, and concentrating the sampled or unsampled datastored in the flat-data records with an apparatus for executing a dataenrichment algorithm. An example apparatus is illustrated in FIG. 4,which outputs training sets 420, 421, and 440; and test sets 422, 423,and 442; and blind sets 424, 425, and 444 derived from either the flatdata 110 or sampled data 118. Such step 122 removes data that may existin particular data fields that is less important to building predictivemodels. Entire data fields themselves are removed here that arepredetermined to be unavailing to building good predictive models thatfollow.

Step 122 calculates and combines any data it has into new data fieldsthat are predetermined to be more important to building such predictivemodels. It converts text with an apparatus for executing a contextmining algorithm, as suggested by FIG. 6. Even more details of this aresuggested in my U.S. patent application Ser. No. 14/613,383, filed Feb.4, 2015, and titled, ARTIFICIAL INTELLIGENCE FOR CONTEXT CLASSIFIER.Step 122 then transforms a plurality of results from the execution ofthese algorithms into a set of enriched-data records 124 that arecollectively stored in a machine-readable storage mechanism.

A step 126 uses the set of enriched-data records 124 to build aplurality of smart-agent predictive models for each entity represented.Step 126 employs an apparatus for executing a smart-agent buildingalgorithm. The details of this are shown in FIG. 6. Further relatedinformation is included in my U.S. Pat. No. 7,089,592 B2, issued Aug. 8,2006, titled, SYSTEMS AND METHODS FOR DYNAMIC DETECTION AND PREVENTIONOF ELECTRONIC FRAUD, which is incorporated herein by reference. (Herein,Adjaoute '592. ) Special attention should be placed on FIGS. 11-30 andthe descriptions of smart-agents in connection with FIG. 21 and thesmart-agent technology in Columns 16-18.

Unsupervised Learning of Normal and Abnormal Behavior

Each field or attribute in a data record is represented by acorresponding smart-agent. Each smart-agent representing a field willbuild what-is-normal (normality) and what-is-abnormal (abnormality)metrics regarding other smart-agents.

Apparatus for creating smart-agents is supervised or unsupervised. Whensupervised, an expert provides information about each domain. Eachnumeric field is characterized by a list of intervals of normal values,and each symbolic field is characterized by a list of normal values. Itis possible for a field to have only one interval. If there are nointervals for an attribute, the system apparatus can skip testing thevalidity of its values, e.g., when an event occurs.

As an example, a doctor (expert) can give the temperature of the humanbody as within an interval [35° C.:41° C.], and the hair colors can be{black, blond, red}.

1) For each field “a” of a Table: i) Retrieve all the distinct valuesand their cardinalities and create a list “La” of couples (vai, nai);ii) Analyze the intermediate list “La” to create the list of intervalsof normal values Ia with this method: (a) If “a” is a symbolicattribute, copy each member of “La” into Ia when nai is superior to athreshold Θ_(min); (b) If “a” is a numeric attribute: 1. Order the list“La” starting with the smallest values “va”; 2. While La is not empty;i. Remove the first element ea=( val, na1) of “La” ii. Create aninterval with this element: I′ = [va1, va1] iii. While it is possible,enlarge this interval with the first elements of “La” and remove themfrom “La”: I′ = [va1, vak]. The loop stops before the size of theinterval vak-va1 becomes greater than a threshold Θ_(dist). (c) given:na′ = na1 + ... + nak (d) If na′ is superior to a threshold Θmin, Ia =I′ otherwise, Ia=Ø; iii) If Ia is not empty, save the relation (a , Ia ).An unsupervised learning process uses the following algorithm:Θ_(min) represents the minimum number of elements an interval mustinclude. This means that an interval will only be take into account ifit encapsulates enough values, so its values will be considered normalbecause frequent;the system apparatus defines two parameters that is modified: themaximum number of intervals for each attribute n_(max); the minimumfrequency of values in each interval f_(Imin);Θ_(min) is computed with the following method:

-   -   Θ_(min)=f_(Imin)*number of records in the table.        Θ_(dist) represents the maximum width of an interval. This        prevents the system apparatus from regrouping some numeric        values that are too disparate. For an attribute a, lets call        mina the smallest value of a on the whole table and maxa the        biggest one. Then:

Θ_(dist)=(maxa−mina)/n _(max)

For example, consider a numeric attribute of temperature with thefollowing values:

75 80 85 72 69 72 83 6 4 81 71 65 75 68 70The first step is to sort and group the values into “La”: “La”={(64,1)(65,1) (68,1) (69,1) (70,1) (71,1) (72,2) (75,2) (80,1) (81,1) (83,1)(85,1)}Then the system apparatus creates the intervals of normal values:Consider f_(lmin)=10% and n_(max)=5 then Θ=1.4 and Θ=(85−64)/5=4.2

Ia={[64,68] [69,72] [75] [80,83]}

The interval [85,85] was removed because its cardinality (1) is smallerthan Θ_(min).

When a new event occurs, the values of each field are verified with theintervals of the normal values it created, or that were fixed by anexpert. It checks that at least one interval exists. If not, the fieldis not verified. If true, the value inside is tested against theintervals, otherwise a warning is generated for the field.

During creation, dependencies between two fields are expressed asfollows:

When the field 1 is equal to the value v1, then the field 2 takes thevalue v2 in significant frequency p.

Example: when species is human the body_temperature is 37.2° C. with a99.5% accuracy.

Given cT is the number of records in the whole database. For eachattribute X in the table:

Retrieve the list of distinct values for X with the cardinality of eachvalue:

Lx={(x1, cx1), . . . (xi, c _(xi)), . . . (xn, cxn)}

For each distinct value xi in the list:Verify if the value is typical enough: (c_(xi)/cT)>Θx?

If true, for each attribute Y in the table, Y≠X Retrieve the list ofdistinct values for Y with the cardinality of each value:

Ly={(y1, cy1), . . . (yj, c _(yj)), . . . (yn, cyn)}

For each value yj;

Retrieve the number of records c_(ij) where (X=xi) and (Y=yj). If therelation is significant, save it: if (c_(ij)/c_(xi))>Θxy then save therelation [(X=xi)⇒(Y=yj)] with the cardinalities c_(xi), c_(yj) andc_(ij).

The accuracy of this relation is given by the quotient (c_(ij)/c_(xi)).Verify the coherence of all the relations: for each relation

[(X=xi)⇒(Y=yj)]  (1)

Search if there is a relation [(Y=yj)⇒(X=xk)]  (2)

If xi≠xk remove both relations (1) and (2) from the model otherwise itwill trigger a warning at each event since (1) and (2) cannot both betrue.To find all the dependencies, the system apparatus analyses a databasewith the following algorithm:

The default value for Θx is 1%: the system apparatus will only considerthe significant value of each attribute.

The default value for Θxy is 85%: the system apparatus will onlyconsider the significant relations found.

A relation is defined by: (Att₁=v₁)⇒(Att₂=v₂)   (eq).

All the relations are stored in a tree made with four levels of hashtables, e.g., to increase the speed of the system apparatus. A firstlevel is a hash of the attribute's name (Att1 in eq); a second level isa hash for each attribute the values that imply some correlations (v1 ineq); a third level is a hash of the names of the attributes withcorrelations (Att2 in eq) to the first attribute; a fourth and lastlevel has values of the second attribute that are correlated (v2 in eq).

Each leaf represents a relation. At each leaf, the system apparatusstores the cardinalities c_(xi), c_(yj) and c_(ij). This will allow thesystem apparatus to incrementally update the relations during itslifetime. Also it gives:

the accuracy of a relation: c_(ij)/c_(xi);

the prevalence of a relation: c_(ij)/cT;

the expected predictability of a relation: c_(yj)/cT.

Consider an example with two attributes, A and B:

A B 1 4 1 4 1 4 1 3 2 1 2 1 2 2 3 2 3 2 3 2There are ten records: cT=10.Consider all the possible relations:

Relation C_(xi) C_(yi) C_(ij) (c_(xi)/c_(T)) Accuracy (A = 1) ⇒ (B = 4)4 3 3 40%  75% (1) (A = 2) ⇒ (B = 1) 2 2 2 20% 100% (2) (A = 3) ⇒ (B =2) 3 4 3 30% 100% (3) (B = 4) ⇒ (A = 1) 3 4 3 30% 100% (4) (B = 3) ⇒ (A= 1) 1 4 1 10% 100% (5) (B = 1) ⇒ (A = 2) 2 3 2 20% 100% (6) (B = 2) ⇒(A = 3) 4 3 3 40%  75% (7)With the defaults values for Θx and Θxy, for each possible relation, thefirst test (c_(xi)/c_(T))>Θx is successful (since Θx=1%) but therelations (1) and (7) would be rejected (since Θxy=85%).Then the system apparatus verifies the coherence of each remainingrelation with an algorithm:

(A = 2) ⇒ (B = 1) is coherent with (B = 1) ⇒ (A = 2); (A = 3) ⇒ (B = 2)is not coherent since there is no more relation (B = 2) ⇒ . . . ; (B =4) ⇒ (A = 1) is not coherent since there is no more relation (A = 1) ⇒ .. . ; (B = 3) ⇒ (A = 1) is not coherent since there is no more relation(A = 1) ⇒ . . . ; (B = 1) ⇒ (A = 2) is coherent with (A = 2) ⇒ (B = 1).The system apparatus classifies the normality/abnormality of each newevent in real-time during live production and detection.

For each event couple attribute/value (X,xi): Looking in the model forall the relations starting by [(X=xi)⇒ . . . ]

-   -   For all the other couple attribute/value (Y,y_(j)), Y≠X, of the        event:    -   Look in the model for a relation [(X=xj)⇒(Y=v)]; If y_(j)≠v then        trigger a warning “[(X=x_(i))⇒(Y=y_(j))] not respected”.

Incremental Learning

The system apparatus incrementally learns with new events:

Increment cT by the number or records in the new table T. For eachrelation [(X=xi)⇒(Y=yj)] previously created:

-   -   Retrieve its parameters: c_(xi), c_(yj) and c_(ij)    -   Increment c_(xi) by the number of records in T where X=x_(i);    -   Increment c_(yj) by the number of records in T where Y=y_(j);    -   Increment c_(ij) by the number of records in T where        [(X=x_(i))⇒(Y=Y_(j))];    -   Verify if the relation is still significant:        -   If (c_(xi)/c_(T))<Θ_(x), remove this relation;            If (c_(ij)/c_(xi))<Θ_(xy), remove this relation.

In FIG. 1, a step 127 selects amongst a plurality of smart-agentpredictive models and updates a corresponding particular smart-agent'sreal-time profile and long-term profile. Such profiles are stored in amachine-readable storage mechanism with the data from the enriched-datarecords 124. Each corresponds to a transaction activity of a particularentity. Step 127 employs an apparatus for executing a smart-agentalgorithm that compares a current transaction, activity, behavior topreviously memorialized transactions, activities and profiles such asillustrated in FIG. 7. Step 127 then transforms and stores a series ofresults as smart-agent predictive model in a markup language document ina machine-readable storage mechanism. Such smart-agent predictive modelmarkup language documents are XML types and best communicated in aregistered file extension format, “.IFM”, marketed by Brighterion, Inc.(San Francisco, Calif.).

Steps 126 and 127 can both be implemented by the apparatus of FIG. 11that executes algorithm 1100.

A step 128 exports the .IFM-type smart-agent predictive model markuplanguage documents to a user-service consumer, e.g., using an apparatusfor executing a data-science-as-a-service algorithm from a networkserver, as illustrated in FIGS. 6 and 9.

In alternative method embodiments of the present invention, Method 100further includes a step 130 for building a data mining predictive model(e.g. 612, FIG. 6) by applying the same data from the samples of theenriched-data records 124 as an input to an apparatus for generating adata mining algorithm. For example, as illustrated in FIG. 22. Adata-tree result 131 is transformed by a step 132 into a data-miningpredictive model markup language document that is stored in amachine-readable storage mechanism. For example, as an industrystandardized predictive model markup language (PMML) document. PMML isan XML-based file format developed by the Data Mining Group (dmg.org) toprovide a way for applications to describe and exchange models producedby data mining and machine learning algorithms. It supports commonmodels such as logistic regression and feed-forward neural networks.Further information related to data mining is included in Adjaoute '592.Special attention should be placed on FIGS. 11-30 and the descriptionsof the data-mining technology in Columns 18-20.

Method 100 further includes an alternative step 134 for building aneural network predictive model (e.g. 613, FIG. 6) by applying the samedata from the samples of the enriched-data records 124 as an input to anapparatus for generating a neural network algorithm. For example, asillustrated in FIG. 12-17. A nodes/weight result 135 is transformed by astep 136 into a neural-network predictive model markup language documentthat is stored in a machine-readable storage mechanism. Furtherinformation related to neural networks is included in Adjaoute '592.Special attention should be placed on FIGS. 13-15 and the descriptionsof the neural network technology in Columns 14-16.

Method 100 further includes an alternative step 138 for building acase-based-reasoning predictive model (e.g. 614, FIG. 6) by applying thesame data from the samples of the enriched-data records 124 as an inputto an apparatus for generating a cased-based reasoning algorithm. Assuggested by the algorithm of FIG. 25-26. A cases result 139 istransformed into a case-based-reasoning predictive model markup languagedocument 140 that is stored in a machine-readable storage mechanism.Further information related to case-based-reasoning is included inAdjaoute '592. Special attention should be placed on FIGS. 24-25 and thedescriptions of the case-based-reasoning technology in Columns 20-21.

Method 100 further includes an alternative step 142 for building aclustering predictive model (e.g. 615, FIG. 6) by applying the same datafrom the samples of the enriched-data records 124 as an input to anapparatus for generating a clustering algorithm. A clusters result 143is transformed by a step 144 into a clustering predictive model markuplanguage document that is stored in a machine-readable storagemechanism.

Clustering here involves the unsupervised classification ofobservations, data items, feature vectors, and other patterns intogroups. In supervised learning, a collection of labeled patterns areused to determine class descriptions which, in turn, can then be used tolabel the new pattern. In the case of unsupervised clustering, thechallenge is in grouping a given collection of unlabeled patterns intomeaningful clusters.

Typical pattern clustering algorithms involve the following steps:

(1) Pattern representation: extraction and/or selection;

(2) Pattern proximity measure appropriate to the data domain;

(3) Clustering, and

(4) Assessment of the outputs.

Feature selection algorithms identify the most effective subsets of theoriginal features to use in clustering. Feature extraction makestransformations of the input features into new relevant features. Eitherone or both of these techniques is used to obtain an appropriate set offeatures to use in clustering. Pattern representation refers to thenumber of classes and available patterns to the clustering algorithm.Pattern proximity is measured by a distance function defined on pairs ofpatterns.

A clustering is a partition of data into exclusive groups or fuzzyclustering. Using Fuzzy Logic, A fuzzy clustering method assigns degreesof membership in several clusters to each input pattern. Both similaritymeasures and dissimilarity measures are used here in creating clusters.

Method 100 further includes an alternative step 146 for building abusiness rules predictive model (e.g. 616, FIG. 6) by applying the samedata from the samples of the enriched-data records 124 as an input to anapparatus for generating a business rules algorithm. As suggested by thealgorithm of FIG. 27-29. A rules result 147 is transformed by a step 148into a business rules predictive model markup language document that isstored in a machine-readable storage mechanism. Further informationrelated to rule-based-reasoning is included in Adjaoute '592. Specialattention should be placed on FIG. 27 and the descriptions of therule-based-reasoning technology in Columns 20-21.

Each of Documents 128, 132, 136, 140, 144, and 146 is a tangiblemachine-readable transformation of a trained model and can be sold,transported, installed, used, adapted, maintained, and modified by auser-service consumer or provider.

FIG. 2 represents an apparatus 200 for executing an encryption algorithm202 and a matching decoding algorithm 204, e.g., a standard triple-DESdevice that uses two keys. The Data Encryption Standard (DES) is awidely understood and once predominant symmetric-key algorithm for theencryption of electronic data. DES is the archetypal block cipher—analgorithm that takes data and transforms it through a series ofcomplicated operations into another cipher text bit string of the samelength. In the case of DES, the block size is 64 bits. DES also uses akey to customize the transformation, so that decryption can supposedlyonly be performed by those who know the particular key used to encrypt.The key ostensibly consists of 64 bits; however, only 56 of these areactually used by the algorithm. Eight bits are used solely for checkingparity, and are thereafter discarded. Hence the effective key length is56 bits.

Triple DES (3DES) is a common name in cryptography for the Triple DataEncryption Algorithm (TDEA or Triple DEA) symmetric-key block cipher,which applies the Data Encryption Standard (DES) cipher algorithm threetimes to each data block. The original DES cipher's key size of 56-bitswas generally sufficient when that algorithm was designed, but theavailability of increasing computational power made brute-force attacksfeasible. Triple DES provides a relatively simple method of increasingthe key size of DES to protect against such attacks, without the need todesign a completely new block cipher algorithm.

In FIG. 2, algorithms 202 and 204 transform data in separate records instorage memory back and forth between private data (P) and tripleencrypted data (C).

FIGS. 3A, 3B, and 3C represent an algorithm 300 for cleaning up the rawdata 106 in stored data records, field-by-field, record-by-record. Whatis meant by “cleaning up” is that inconsistent, missing, and illegaldata in each field are removed or reconstituted. Some types of fieldsare very restricted in what is legal or allowed. A record 302 is fetchedfrom the raw data 304 and for each field 306 a test 306 sees if the datavalue reported is numeric or symbolic. If numeric, a data dictionary 308is used by a step 310 to see if such data value is listed as valid. Ifsymbolic, another data dictionary 312 is used by a step 314 to see ifsuch data value is listed as valid.

For numeric data values, a test 316 is used to branch if not numeric toa step 318 that replaces the numeric value. FIG. 3B illustrates such ingreater detail. A test 320 is used to check if the numeric value iswithin an acceptable range. If not, step 318 is used to replace thenumeric value.

For symbolic data values, a test 322 is used to branch if not numeric toa step 324 that replaces the symbolic value. FIG. 3C illustrates such ingreater detail. A test 326 is used to check if the symbolic value is anallowable one. If yes, a step 328 checks if the value is allowed in aset. If yes, then a return 330 proceeds to the next field. If no, step324 replaces the symbolic value.

If in step 326 the symbolic value in the field is not an allowed value,a step 332 asks if the present field is a zip code field. If yes, a step334 asks if it's a valid zip code. If yes, the processing moves on tothe next field with step 330. Otherwise, it calls on step 324 to replacethe symbolic value.

If in step 332 the field is not an allowed value a zip code field, thena step 338 asks if the field is reserved for telephone and fax numbers.If yes, a step 340 asks if it's a valid telephone and fax number. Ifyes, the processing moves on to the next field with step 330. Otherwise,it calls on step 324 to replace the symbolic value.

If in step 338 the field is not a field reserved for telephone and faxnumbers, then a step 344 asks if the present field is reserved for datesand time. If yes, a step 346 asks if it's a date or time. If yes, theprocessing moves on to the next field with step 330. Otherwise, it callson step 324 to replace the symbolic value.

If in step 344 the field is not a field reserved for dates and time,then a step 350 applies a Smith-Waterman algorithm to the data value.The Smith-Waterman algorithm does a local-sequence alignment. It's usedto determine if there are any similar regions between two strings orsequences. For example, to recognize “Avenue” as being the same as“Ave.”; and “St.” as the same as “Street”; and “Mr.” as the same as“Mister”. A consistent, coherent terminology is then enforceable in eachdata field without data loss. The Smith-Waterman algorithm comparessegments of all possible lengths and optimizes the similarity measurewithout looking at the total sequence. Then the processing moves on to anext field with step 330.

FIG. 3B represents what happens inside step 318, replace numeric value.The numeric value to use as a replacement depends on any flags orpreferences that were set to use a default, the average, a minimum, amaximum, or a null. A step 360 tests if user preferences were set to usea default value. If yes, then a step 361 sets a default value andreturns to do a next field in step 330. A step 362 tests if userpreferences were set to use an average value. If yes, then a step 361sets an average value and returns to do the next field in step 330. Astep 364 tests if user preferences were set to use a minimum value. Ifyes, then a step 361 sets a minimum value and returns to do the nextfield in step 330. A step 366 tests if user preferences were set to usea maximum value. If yes, then a step 361 sets a maximum value andreturns to do the next field in step 330. A step 368 tests if userpreferences were set to use a null value. If yes, then a step 361 sets anull value and returns to do the next field in step 330. Otherwise, astep 370 removes the record and moves on to the next record.

FIG. 3C represents what happens inside step 324, replace symbolic value.The symbolic value to use as a replacement depends on if flags were setto use a default, the average, or null. A step 374 tests if userpreferences were set to use a default value. If yes, then a step 375sets a default value and returns to do the next field in step 330. Astep 376 tests if user preferences were set to use an average value. Ifyes, then a step 377 sets an average value and returns to do the nextfield in step 330. A step 378 tests if user preferences were set to usea null value. If yes, then a step 379 sets a null value and returns todo the next field in step 330. Otherwise, a step 380 removes the recordand moves on to a next record.

FIG. 4 represents the apparatus for executing sampling algorithm 116. Asampling algorithm 400 takes cleaned, raw-data 402 and asks in step 404if method embodiments of the present invention data are supervised. Ifso, a step 406 creates one data set “C1” 408 and a “Cn” 410 for eachclass. Stratified selection is used if needed. Each application carriesits own class set, e.g., stocks portfolio managers use buy-sell-holdclasses; loans managers use loan interest rate classes; risk assessmentmanagers use fraud-no_fraud-suspicious classes; marketing managers useproduct-category-to-suggest classes; and, cybersecurity usesnormal_behavior-abnormal_behavior classes. Other classes are possibleand useful. For all classes, a step 412 and 413 asks if the class isabnormal (e.g., uncharacteristic). If not, a step 414 and 415down-sample and produce sampled records of the class 416 and 417. Then astep 418 and 419 splits the remaining data into separate training sets420 and 421, separate test sets 422 and 423, and separate blind sets 424and 425.

If in step 404 method embodiments of the present invention data wasdetermined to be unsupervised, a step 430 creates one data set with allthe records and stores them in a memory device 432. A step 434down-samples all of them and stores those in a memory device 436. Then astep 438 splits the remaining data into separate a training set 440, aseparate test set 442, and a separate blind set 444.

Later applications described herein also require data cleanup and dataenrichment, but they do not require the split training sets produced bysampling algorithm 400. Instead they process new incoming records thatare cleaned and enriched to make a prediction, a score, or a decision,record one at a time.

FIGS. 5A and 5B together represent an apparatus 500 for executing aspecialized data enrichment algorithm that works both to enrich theprofiling criteria for smart-agents and to enrich the data fields forall the other general predictive models. They all are intended to worktogether in parallel with the smart-agents in operational use.

In FIG. 5A, a plurality of training sets, herein 502 and 502, for eachclass C1 . . . Cn are input for each data field of a record in a step506. Such supervised and unsupervised training sets correspond totraining sets 420, 421, and 440 (FIG. 4). More generally, flat data 110,120 and sampled data 118 (FIG. 1). A step 508 asks if there are too manydistinct data values. E.g., is the data scattered all over the map? Ifso, a step 510 excludes that field and thereby reduces the list offields. Otherwise, a step 512 asks if there is a single data value.Again, if so such field is not too useful in later steps, and step 510excludes that field as well. Otherwise, a step 514 asks if the Shannonentropy is too small. The entropy of a message is its amount ofuncertainty. It increases when the message is closer to random, anddecreases when it is less random. The idea here is that the less likelyan event is, the more information it provides when it occurs. If theShannon entropy is too small, step 510 excludes that field. Otherwise, astep 516 reduces the number of fields in the set of fields carriedforward as those that actually provide useful information.

A step 517 asks if the field type under inspection at that instant issymbolic or numeric. If symbolic, a step 518 provides AI behaviorgrouping. For example, colors or the names of boys. Otherwise, a step520 does a numeric fuzzification in which a numeric value is turned intoa membership of one or more fuzzy sets. Then a step 522 produces areduced set of transformed fields. A step 524 asks if the number ofcriteria or data fields remaining meets a predefined target number. Thetarget number represents a judgment of the optimum spectrum of profilingcriteria data fields that will be needed to produce high performancesmart-agents and good predictive models.

If yes, a step 526 outputs a final list of profiling criteria and datafields needed by the smart-agent steps 126 and 127 in FIG. 1 and all theother predictive model steps 130, 131, 134, 135, 138, 139, 142, 143,146, and 147.

If not, the later steps in Method 100 need richer data to work with thanis on-hand at the moment. The enrichment provided represents the mostdistinctive advantage that embodiments of the present invention haveover conventional methods and systems. A step 528 (FIG. 5B) begins aprocess to generate additional profiling criteria and newly derived datafields. A step 530 chooses an aggregation type. A step 532 chooses atime range for a newly derived field or profiling criteria. A step 534chooses a filter. A step 536 chooses constraints. A step 538 chooses thefields to aggregate. A step 540 chooses a recursive level.

A step 542 assesses the quality of the newly derived field by importingtest set classes C1 . . . Cn 544 and 546. It assesses the profilingcriteria and data field quality for large enough coverage in a step 548,the maximum transaction/event false positive rate (TFPR) below a limitin a step 550, the average TFPR below a limit in a step 552,transaction/event detection rate (TDR) above a threshold in a step 554,the transaction/event review rate (TRR) trend below a threshold in astep 556, the number of conditions below a threshold in a step 560, thenumber of records is above a threshold in a step 562, and the timewindow is optimal a step 564.

If the newly derived profiling criteria or data field has beenqualified, a step 566 adds it to the list. Otherwise, the newly deriveprofiling criteria or data field is discarded in a step 568 and returnsto step 528 to try a new iteration with updated parameters.

Thresholds and limits are stored in computer storage memory mechanismsas modifiable digital data values that are non-transitory. Thresholdsare predetermined and is “tuned” later to optimize overall operationalperformance. For example, by manipulating the data values stored in acomputer memory storage mechanism through an administrator's consoledashboard. Thresholds are digitally compared to incoming data, or newlyderived data using conventional devices.

Using the Data Science

Once the predictive model technologies have been individually trained byboth supervised and unsupervised data and then packaged into a PMMLDocument, one or more of them can be put to work in parallel render arisk or a decision score for each new record presented to them. At aminimum, only the smart-agent predictive model technology will beemployed by a user-consumer. But when more than one predictive modeltechnology is added in to leverage their respective synergies, adecision engine algorithm is needed to single out which predicted classproduced in parallel by several predictive model technologies would bethe best to rely on.

FIG. 6 is a flowchart diagram of a method 600 for using the PMMLDocuments (128, 132, 136, 140, 144, and 148) of FIG. 1 with an algorithmfor the run-time operation of parallel predictive model technologies.

Method 600 depends on an apparatus to execute an algorithm to use thepredictive technologies produced by method 100 (FIG. 1) and exported asPMML Documents. Method 600 can provide a substantial commercialadvantage in a real-time, record-by-record application by a business.One or more PMML Documents 601-606 are imported and put to work inparallel as predictive model technologies 611-616 to simultaneouslypredict a class and its confidence in that class for each new recordpresented to them.

It is important that these records receive a data-cleanup 620 and adata-enrichment, as were described for steps 108 and 122 in FIG. 1. Aresulting enriched data 624 with newly derived fields in the records isthen passed in parallel for simultaneous consideration and evaluation byall the predictive model technologies 611-616 present. Each willtransform its inputs into a predicted class 631-636 and a confidence641-646 stored in a computer memory storage mechanism.

A record-by-record decision engine 650 inputs user strategies in theform of flag settings 652 and rules 654 to decision on which to outputas a prevailing predicted class output 660 and to compute a normalizedconfidence output 661. Such record-by-record decision engine 650 isdetailed here next in FIG. 7.

Typical examples of prevailing predicted classes 660:

FIELD OF APPLICATION OUTPUT CLASSES stocks use class buy, buy, sell,hold, etc. loans use class provide a loan with an interest, or not riskuse class fraud, no fraud, suspicious marketing use class category ofproduct to suggest cybersecurity use class normal behavior, abnormal,etc.

Method 600 works with at least two of the predictive models from steps128, 132, 136, 140, 144, and 148 (of FIG. 1). The predictive models eachsimultaneously produce a score and a score-confidence level in parallelsets, all from a particular record in a plurality of enriched-datarecords. These combine into a single result to return to a user-serviceconsumer as a decision.

Further information related to combining models is included in Adjaoute'592. Special attention should be placed on FIG. 30 and the descriptionin Column 22 on combining the technologies.

There, the neural network, smart-agent, data mining, and case-basedreasoning technologies all come together to produce a final decision,such as if a particular electronic transaction is fraudulent, in adifferent application, if there is network intrusion.

FIG. 7 is a flowchart diagram of an apparatus with an algorithm 700 forthe decision engine 650 of FIG. 6. Algorithm 700 choses which predictedclass 631-636, or a composite of them, should be output as prevailingpredicted class 660. Switches or flag settings 652 are used to controlthe decision outcome and are fixed by the user-service consumer inoperating their business based on the data science embodied in Documents601-606. Rules 654 too can include business rules like, “always followthe smart agent's predicted class if its confidence exceeds 90%.”

A step 702 inspects the rule type then in force. Compiled flag settingsrules are fuzzy rules (business rules) developed with fuzzy logic. Fuzzyrules are used to merge the predicted classes from all the predictivemodels and technologies 631-636 and decide on one final prediction,herein, prevailing predicted class 660. Rules 654 are either manuallywritten by analytical engineers, or they are automatically generatedwhen analyzing the enriched training data 124 (FIG. 1) in steps 126,130, 134, 138, 142, and 146.

If in step 702 it is decided to follow “compiled rules”, then a step 704invokes the compiled flag settings rules and returns with acorresponding decision 706 for output as prevailing predicted class 660.

If in step 702 it is decided to follow “smart agents”, then a step 708invokes the smart agents and returns with a corresponding decision 710for output as prevailing predicted class 660.

If in step 702 it is decided to follow “predefined rules”, then a step712 asks if the flag settings should be applied first. If not, a step714 applies a winner-take-all test to all the individual predictedclasses 631-636 (FIG. 6). A step tests if one particular class wins. Ifyes, a step 718 outputs that winner class for output as prevailingpredicted class 660.

If not in step 716, a step 720 applies the flag settings to theindividual predicted classes 631-636 (FIG. 6). Then a step 722 asksthere is a winner rule. If yes, a step 724 outputs that winner ruledecision for output as prevailing predicted class 660. Otherwise, a step726 outputs an “otherwise” rule decision for output as prevailingpredicted class 660.

If in step 712 flag setting are to be applied first, a step 730 appliesthe flags to the individual predicted classes 631-636 (FIG. 6). Then astep 732 asks if there is a winner rule. If yes, then a step 734 outputsthat winner rule decision for output as prevailing predicted class 660.Otherwise, a step 736 asks if the decision should be winner-take-all. Ifno, a step 738 outputs an “otherwise” rule decision for output asprevailing predicted class 660.

If in step 736 it should be winner-take-all, a step 740 applieswinner-take-all to each of the individual predicted classes 631-636(FIG. 6). Then a step 742 asks if there is now a winner class. If not,step 738 outputs an “otherwise” rule decision for output as prevailingpredicted class 660.

Otherwise, a step 744 outputs a winning class decision for output asprevailing predicted class 660.

Compiled flag settings rules in step 704 are fuzzy rules, e.g., businessrules with fuzzy logic. Such fuzzy rules are targeted to merge thepredictions 631-636 into one final prediction 660. Such rules are eitherwritten by analytical engineers or are generated automatically byanalyses of the training data.

When applying flag settings to the individual predictions, as in step730, an algorithm for a set of ordered rules that indicate how to handlepredictions output by each prediction technology. FIG. 8 illustratesthis further.

FIG. 8 shows flag settings 800 as a set of ordered rules 801-803 thatindicate how to handle each technology prediction 631-636 (FIG. 6). Foreach technology 611-616, there is at least one rule 801-803 thatprovides a corresponding threshold 811-813. Each are then compared toprediction confidences 641-646.

When a corresponding incoming confidence 820 is higher or equal to agiven threshold 811-813 provided by a rule 801-803, the technology611-616 associated with rule 801-803 is declared “winner” and its classand confidence are used as the final prediction. When none of thetechnologies 611-616 win, an “otherwise rule” determines what to do. Inthis case, a clause indicates how to classify the transaction(fraud/not-fraud) and it sets the confidence to zero.

Consider the following example:

Flags Settings Predictions Prediction Prediction Prediction TypeTechnology Threshold Class Technology Confidence All Smart- 0.75 FraudSmart- 0.7 agents agents All Data 0.7 Fraud Data 0.8 Mining Mining . . .. . . . . . , , , . . . . . .A first rule, e.g., 801, looks at a smart-agent confidence (e.g., 641)of 0.7, but that is below a given corresponding threshold (e.g., 811) of0.75 so inspection continues.

A second rule (e.g., 802) looks at a data mining confidence (e.g., 642)of 0.8 which is above a given threshold (e.g., 812) of 0.7. Inspectionstops here and decision engine 650 uses the Data Mining prediction(e.g., 632) to define the final prediction (e.g., 660). Thus it isdecided in this example that the incoming transaction is fraudulent witha confidence of 0.8.

It is possible to define rules that apply only to specific kinds ofpredictions. For example, a higher threshold is associated withpredictions of fraud, as opposed to prediction classes of non-frauds.

A winner-take-all technique groups the individual predictions 631-636 bytheir prediction output classes. Each Prediction Technology is assignedits own weight, one used when it predicts a fraudulent transaction,another used when it predicts a valid transaction. All similarpredictions are grouped together by summing their weighted confidence.The sum of the weighted confidences is divided by the sum of the weightsused in order to obtain a final confidence between 0.0 and 1.0.

For example:

Weights Predictions Prediction Weight - Weight - Prediction TechnologyFraud Valid Class Technology Confidence Smart-agents 2 2 FraudSmart-agents 0.7 Data Mining 1 1 Fraud Data Mining 0.8 Case Based 2 2Valid Cases Based 0.4 Reasoning ReasoningHere in the Example, two prediction technologies (e.g., 611 and 612) arepredicting (e.g., 631 and 632) a “fraud” class for the transaction. Sotheir cumulated weighted confidence here is computed as: 2*0.7+1*0.8which is 2.2, and stored in computer memory. Only case-based-reasoning(e.g., 614) predicts (e.g., class 634) a “valid” transaction, so itsweighted confidence here is computed as: 1*0.4, and is also stored incomputer memory for comparison later.

Since the first computed value of 2.2 is greater than the secondcomputed value of 0.4, this particular transaction in this example isdecided to belong to the “fraud” class. The confidence is thennormalized for output by dividing it by the sum of the weights thatwhere associated with the fraud (2 and 1). So the final confidence(e.g., 661) is computed by 2.2/(2+1) giving: 0.73.

Some models 611-616 may have been trained to output more than just twobinary classes. A fuzzification can provide more than two slots, e.g.,for buy/sell/hold, or declined/suspect/approved. It may help to groupclasses by type of prediction (fraud or not-fraud).

For example:

Weights Predictions Prediction Weight - Weight - Prediction ClassesTechnology Fraud Valid Class Technology Confidence Value TypeSmart-agents 2 2 00 Smart-agents 0.6 00 Fraud Data Mining 1 1 01 DataMining 0.5 01 Fraud Cases Based 2 2 G Cases Based 0.7 G Valid ReasoningReasoning

In a first example, similar classes are grouped together. Sofraud=2*0.6+1*0.5=1.7, and valid=2*0.7=1.4. The transaction in thisexample is marked as fraudulent.

In a second example, all the classes are distinct, with the followingequation: 2*0.6 “00”+1*0.5 “01”+2*0.7 “G” so the winner is the class “G”and the transaction is marked as valid in this example.

Embodiments of the present invention integrate the constituent opinionsof the technologies and make a single prediction class. How theyintegrate the constituent predictions 631-636 depend on a user-serviceconsumers' selections of which technologies to favor and how to favor,and such selections are made prior to training the technologies, e.g.,through a model training interface.

A default selection includes the results of the neural networktechnology, the smart-agent technology, the data mining technology, andthe case-based reasoning technology. Alternatively, the user-serviceconsumer may decide to use any combination of technologies, or to selectan expert mode with four additional technologies: (1) rule-basedreasoning technology; (2) fuzzy logic technology; (3) genetic algorithmstechnology; and (4) constraint programming technology.

One strategy that could be defined by a user-service consumer-consumerassigns one vote to each predictive technology 611-616. A final decision660 then stems from a majority decision reached by equal votes by thetechnologies within decision engine 650.

Another strategy definable by a user-service consumer-consumer assignspriority values to each one of technologies 611-616 with higherpriorities that more heavily determine the final decision, e.g., that atransaction is fraudulent and another technology with a lower prioritydetermines that the transaction is not fraudulent, then methodembodiments of the present invention use the priority values todiscriminate between the results of the two technologies and determinethat the transaction is indeed fraudulent.

A further strategy definable by a user-service consumer-consumerspecifies instead a set of meta-rules to help choose a final decision660 for output. These all indicate an output prediction class and itsconfidence level as a percentage (0-100%, or 0-1.0) proportional to howconfident the system apparatus is in the prediction.

FIG. 9 illustrates a method 900 of business decision making thatrequires the collaboration of two businesses, a service provider 901 anda user-consumer 902. The two businesses communicate with one another viasecure Internet between network servers. The many data records and datafiles passed between them are hashed or encrypted by a triple-DESalgorithm, or similar protection. It also possible to send anon-encrypted filed through an encrypted channel. Users of the platformwould upload their data through SSL/TLS from a browser or from a commandline interface (SCP or SFTP).

The service-provider business 901 combines method 100 (FIG. 1) andmethod 600 (FIG. 6) and their constituent algorithms. It acceptssupervised and unsupervised training data 904 and strategies 906 fromthe user-service consumer business 902. Method 100 then processes suchas described above with FIGS. 1-8 to produce a full set of fully trainedpredictive models that are passed to method 600.

New records from operations 906 provided, e.g., in real-time as theyoccur, are passed after being transformed by encryption from theuser-service consumer business 902 to the service provider business 901and method 600. An on-going run of scores, predictions, and decisions908 (produced by method 600 according to the predictive models of method100 and the strategies 905 and training data 904) are returned touser-service consumer business 902 after being transformed byencryption.

With some adjustment and reconfiguration, method 900 is trained for awide range of uses, e.g., to classify fraud/no-fraud in paymenttransaction networks, to predict buy/sell/hold in stock trading, todetect malicious insider activity, and to call for preventativemaintenance with machine and device failure predictions.

FIG. 10 represents an apparatus for executing an algorithm 1000 forreclassifying a decision 660 (FIG. 6) for business profitabilityreasons. For example, when a payment card transaction for a particulartransaction amount $X has already been preliminarily “declined” andincluded in a decision 1002 (and 660, FIG. 6) according to some otherscoring model. A test 1004 compares a dollar transaction “thresholdamount-A” 1006 to a computation 1008 of the running average business aparticular user has been doing with the account involved. The rationalfor doing this is that valuable customers who do more than an averageamount (threshold-A 1006) of business with their payment card should notbe so easily or trivially declined. Some artificial intelligencedeliberation and reconsideration is appropriate.

If, however test 1004 decides that the accountholder has not earnedspecial processing, a “transaction declined” decision 1010 is issued asfinal (transaction-declined 110). Such is then forwarded by a financialnetwork to the merchant point-of-sale (POS).

But when test 1004 decides that the accountholder has earned specialprocessing, a transaction-preliminarily-approved decision 1012 iscarried forward to a test 1014. A threshold-B transaction amount 1016 iscompared to the transaction amount $X. Essentially, threshold-Btransaction amount 1016 is set at a level that would relieve qualifiedaccountholders of ever being denied a petty transaction, e.g., under$250, and yet not involve a great amount of risk should the “positive”scoring indication from the “other scoring model” not prove much laterto be “false”. If the transaction amount $X is less than threshold-Btransaction amount 1016, a “transaction approved” decision 1018 isissued as final. Such is then forwarded by the financial network to themerchant CP/CNP, unattended terminal, ATM, online payments, etc.

If the transaction amount $X is more than threshold-B transaction amount1016, a transaction-preliminarily-approved decision 1020 is carriedforward to a familiar transaction pattern test 1022. An abstract 1024 ofthis account's transaction patterns is compared to the instanttransaction. For example, if this accountholder seems to be a new parentwith a new baby as evidenced in purchases of particular items, then allfuture purchases that could be associated are reasonably predictable.Or, in another example, if the accountholder seems to be on business ina foreign country as evidenced in purchases of particular items andtravel arrangements, then all future purchases that could be reasonablyassociated are to be expected and scored as lower risk. And, in one moreexample, if the accountholder seems to be a professional gambler asevidenced in cash advances at casinos, purchases of specific things andarrangements, then these future purchases too could be reasonablyassociated are be expected and scored as lower risk.

So if the transaction type is not a familiar one, then a “transactiondeclined” decision 1026 is issued as final. Such is then forwarded bythe financial network 106 to the the merchant (CP and/or CNP) and/orunattended terminal/ATM. Otherwise; a transaction-preliminarily-approveddecision 1028 is carried forward to a threshold-C test 1030.

A threshold-C transaction amount 1032 is compared to the transactionamount $X. Essentially, threshold-C transaction amount 1032 is set at alevel that would relieve qualified accountholders of being denied amoderate transaction, e.g., under $2500, and yet not involve a greatamount of risk because the accountholder's transactional behavior iswithin their individual norms. If the transaction amount $X is less thanthreshold-C transaction amount 1032, a “transaction approved” decision1034 is issued as final (transaction-approved). Such is then forwardedby the financial network 106 to the merchant (CP and/or CNP) and/orunattended terminal/ATM.

If the transaction amount $X is more than threshold-C transaction amount1032, a transaction-preliminarily-approved decision 1036 is carriedforward to a familiar user device recognition test 1038. An abstract1040 of this account's user devices is compared to those used in theinstant transaction.

So if the user device is not recognizable as one employed by theaccountholder, then a “transaction declined” decision 1042 is issued asfinal. Such is then forwarded by the financial network 106 to themerchant (CP and/or CNP) and/or unattended terminal/ATM. Otherwise; atransaction-preliminarily-approved decision 1044 is carried forward to athreshold-D test 1046.

A threshold-D transaction amount 1048 is compared to the transactionamount $X. Basically, the threshold-D transaction amount 1048 is set ata higher level that would avoid denying substantial transactions toqualified accountholders, e.g., under $10,000, and yet not involve agreat amount of risk because the accountholder's user devices arerecognized and their instant transactional behavior is within theirindividual norms. If the transaction amount $X is less than threshold-Dtransaction amount 1032, a “transaction approved” decision 1050 isissued as final. Such is then forwarded by the financial network 106 tothe merchant (CP and/or CNP) and/or unattended terminal/ATM.

Otherwise, the transaction amount $X is just too large to override adenial if the other scoring model decision 1002 was “positive”, e.g.,for fraud, or some other reason. In such case, a “transaction declined”decision 1052 is issued as final (transaction-declined 110). Such isthen forwarded by the financial network 106 to the merchant (CP and/orCNP) and/or unattended terminal/ATM.

In general, threshold-B 1016 is less than threshold-C 1032, which inturn is less than threshold-D 1048. It could be that tests 1022 and 1038would serve profits better if swapped in FIG. 10. Embodiments of thepresent invention would therefore include this variation as well. Itwould seem that threshold-A 1006 should be empirically derived anddriven by business goals.

The further data processing required by technology 1000 occurs inreal-time while merchant (CP and CNP, ATM and all unattended terminal)and users wait for approved/declined data messages to arrive throughfinancial network. The consequence of this is that the abstracts forthis-account's-running-average-totals 1008, thisaccount's-transaction-patterns 1024, and this-account's-devices 1040must all be accessible and on-hand very quickly. A simple look-up ispreferred to having to compute the values. The smart agents and thebehavioral profiles they maintain and that we've described in thisApplication and those we incorporate herein by reference are up to doingthis job well. Conventional methods and apparatus may struggle toprovide this information quickly enough.

FIG. 10 represents for the first time in machine learning an apparatusthat allows a different threshold for each customer. It further enablesdifferent thresholds for the same customer based on the context, e.g., aThreshold-1 while traveling, a Threshold-2 while buying things familiarwith his purchase history, a Threshold-3 while in same area where theylive, a Threshold-4 during holidays, a Threshold-5 for nights, aThreshold-6 during business hours, etc.

FIG. 11 represents an algorithm that executes as smart-agent productionapparatus 1100, and is included in the build of smart-agents in steps126 and 127 (FIG. 1), or as step 611 (FIG. 6) in operation. The resultsare either exported as an .IFM-type XML document in step 128, or usedlocally as in method 600 (FIG. 6). Step 126 (FIG. 1) builds a populationof smart-agents and their profiles that are represented in FIG. 11 assmart-agents S1 1102 and Sn 1104. Step 127 (FIG. 1) initialized thatbuild. Such population can reach into the millions for large systems,e.g., those that handle payment transaction requests nationally andinternationally for millions of cardholders (entities).

Each new record 1106 received, from training records 124, or from dataenrichment 622 in FIG. 6, is inspected by a step 1108 that identifiesthe entity unique to the record that has caused to record to begenerated. A step 1110 gets the corresponding smart-agent that matchesthis identification from the initial population of smart-agents 1102,1102 it received in step 128 (FIG. 1). A step 1112 asks if any were notfound. A step 1114 uses default profiles optimally defined for eachentity, and to create and initialize smart-agents and profiles forentities that do not have a match in the initial population ofsmart-agents 1102, 1102. A step 1116 uses the matching smart-agent andprofile to assess record 1106 and issues a score 1118. A step 1120updates the matching smart-agent profile with the new information inrecord 1106.

A step 1122 dynamically creates/removes/updates and otherwise adjustsattributes in any matching smart-agent profile based on a content ofrecords 1106. A step 1124 adjusts an aggregation type (count, sum,distinct, ratio, average, minimum, maximum, standard deviation, . . . )in a matching smart-agent profile. A step 1126 adjusts a time range in amatching smart-agent profile. A step 1128 adjusts a filter based on areduced set of transformed fields in a matching smart-agent profile. Astep 1130 adjusts a multi-dimensional aggregation constraint in amatching smart-agent profile. A step 1132 adjusts an aggregation field,if needed, in the matching smart-agent profile. A step 1134 adjusts arecursive level in the matching smart-agent profile.

FIGS. 12-29 provide greater detail regarding the construction andfunctioning of algorithms that are employed in FIGS. 1-11.

Neural Network Technology

FIG. 12 is a schematic diagram of the neural network architecture usedin method embodiments of the present invention. Neural network 1200consists of a set of processing elements or neurons that are logicallyarranged into three layers: (1) input layer 1201; (2) output layer 1202;and (3) hidden layer 1203. The architecture of neural network 1200 issimilar to a back propagation neural network, but its training,utilization, and learning algorithms are different. The neurons in inputlayer 1201 receive input fields from a training table. Each of the inputfields are multiplied by a weight such as weight “Wij” 1204 a to obtaina state or output that is passed along another weighted connection withweights “Vjt” 1205 between neurons in hidden layer 1202 and output layer1203. The inputs to neurons in each layer come exclusively from outputof neurons in a previous layer, and the output from these neuronspropagate to the neurons in the following layers.

FIG. 13 is a diagram of a single neuron in the neural network used inmethod embodiments of the present invention. Neuron 1300 receives input“i” from a neuron in a previous layer. Input “i” is multiplied by aweight “Wih” and processed by neuron 1300 to produce state “s”. State“s” is then multiplied by weight “V,” to produce output “i” that isprocessed by neurons in the following layers. Neuron 1300 containslimiting thresholds 1301 that determine how an input is propagated toneurons in the following layers.

FIG. 14 is a flowchart of an algorithm 1400 for training neural networkswith a single hidden layer that builds incrementally during a trainingprocess. The hidden layers may also grow in number later during anyupdates. Each training process computes a distance between all therecords in a training table, and groups some of the records together. Ina first step, a training set “S” and input weights “bi” are initialized.Training set “S” is initialized to contain all the records in thetraining table. Each field “i” in the training table is assigned aweight “bi” to indicate its importance. The input weights “bi” areselected by a client. A distance matrix D is created. Distance matrix Dis a square and symmetric matrix of size N×N, where N is the totalnumber of records in training set “S”. Each element “Dij” in row “i” andcolumn “j” of distance matrix D contains the distance between record “i”and record “j” in training set “S”. The distance between two records intraining set “S” is computed using a distance measure.

FIG. 15 illustrates a table of distance measures 1500 that is used in aneural network training process. Table 1500 lists distance measures thatis used to compute the distance between two records Xi and Xj intraining set “S”. The default distance measure used in the trainingprocess is a Weighted-Euclidean distance measure that uses input weights“bi” to assign priority values to the fields in a training table.

In FIG. 14, a distance matrix D is computed such that each element atrow “i” and column “j” contains d(Xi,Xj) between records Xi and Xj intraining set “S”. Each row “i” of distance matrix D is then sorted sothat it contains the distances of all the records in training set “S”ordered from the closest one to the farthest one.

A new neuron is added to the hidden layer of the neural network thelargest subset “Sk” of input records having the same output isdetermined. Once the largest subset “Sk” is determined, the neuron groupis formed at step 97. The neuron group consists of two limitingthresholds, Θlow and Θhigh, input weights “Wh”, and output weights “Vh”,such that Θlow=Dk, “j” and Θhigh=Dk,l, where “k” is the row in thesorted distance matrix D that contains the largest subset “Sk” of inputrecords having the same output, “j” is the index of the first column inthe subset “Sk” of row “k”, and l is the index of the last column in thesubset “Sk” of row “k”. The input weights “Wh” are equal to the value ofthe input record in row “k” of the distance matrix D, and the outputweights “Vh” are equal to zero except for the weight assigned betweenthe created neuron in the hidden layer and the neuron in the outputlayer representing the output class value of any records belonging tosubset “Sk”. A subset “Sk” is removed from training set “S”, and all thepreviously existing output weights “Vh” between the hidden layer and theoutput layer are doubled. Finally, the training set is checked to see ifit still contains input records, and if so, the training process goesback. Otherwise, the training process is finished and the neural networkis ready for use.

FIG. 16 is a flowchart of an algorithm 1600 for propagating an inputrecord through a neural network. An input record is propagated through anetwork to predict if its output signifies a fraudulent transaction. Adistance between the input record and the weight pattern “Wh” betweenthe input layer and the hidden layer in the neural network is computed.The distance “d” is compared to the limiting thresholds low and high ofthe first neuron in the hidden layer. If the distance is between thelimiting thresholds, then the weights “Wh” are added to the weights “Vh”between the hidden layer and the output layer of the neural network. Ifthere are more neurons in the hidden layer, then the propagationalgorithm goes back to repeat steps for the other neurons in the hiddenlayer. Finally, the predicted output class is determined according tothe neuron at the output layer that has the higher weight.

FIG. 17 is a flowchart of an algorithm 1700 for updating the trainingprocess of a neural network. The training process is updated whenever aneural network needs to learn some new input record. Neural networks areupdated automatically, as soon as data from a new record is evaluated bymethod embodiments of the present invention. Alternatively, the neuralnetwork may be updated offline.

A new training set for updating a neural network is created. The newtraining set contains all the new data records that were not utilizedwhen first training the network using the training algorithm illustratedin FIG. 14. The training set is checked to see if it contains any newoutput classes not found in the neural network. If there are no newoutput classes, the updating process proceeds with the trainingalgorithm illustrated in FIG. 14. If there are new output classes, thennew neurons are added to the output layer of the neural network, so thateach new output class has a corresponding neuron at the output layer.When the new neurons are added, the weights from these neurons to theexisting neurons at the hidden layer of the neural network areinitialized to zero. The weights from the hidden neurons to be createdduring the training algorithm are initialized as 2 h, where “h” is thenumber of hidden neurons in the neural network prior to the insertion ofeach new hidden neuron. With this initialization, the training algorithmillustrated in FIG. 14 is started to form the updated neural networktechnology.

Evaluating if a given input record belongs to one class or other is donequickly and reliably with the training, propagation, and updatingalgorithms described.

Smart-Agent Technology

Smart-agent technology uses multiple smart-agents in unsupervised mode,e.g., to learn how to create profiles and clusters. Each field in atraining table has its own smart-agent that cooperates with others tocombine some partial pieces of knowledge they have about data for agiven field, and validate the data being examined by anothersmart-agent. The smart-agents can identify unusual data and unexplainedrelationships. For example, by analyzing a healthcare database, thesmart-agents would be able to identify unusual medical treatmentcombinations used to combat a certain disease, or to identify that acertain disease is only linked to children. The smart-agents would alsobe able to detect certain treatment combinations just by analyzing thedatabase records with fields such as symptoms, geographic information ofpatients, medical procedures, and so on.

Smart-agent technology creates intervals of normal values for each oneof the fields in a training table to evaluate if the values of thefields of a given electronic transaction are normal. And the technologydetermines any dependencies between each field in a training table toevaluate if the values of the fields of a given electronic transactionor record are coherent with the known field dependencies. Both goals cangenerate warnings.

FIG. 18 is a flowchart of an algorithm for creating intervals of normalvalues for a field in a training table. The algorithm illustrated in theflowchart is run for each field “a” in a training table. A list “La” ofdistinct couples (“vai”,“nai”) is created, where “vai” represents thei^(th) distinct value for field “a” and “nai” represents itscardinality, e.g., the number of times value “vai” appears in a trainingtable. At step 119, the field is determined to be symbolic or numeric.If the field is symbolic, each member of “La” is copied into a new list“Ia” whenever “nai” is superior to a threshold “Θmin” that representsthe minimum number of elements a normal interval must include. “Θmin” iscomputed as “Θmin”=fmin*M, where M is the total number of records in atraining table and fmin is a parameter specified by the userrepresenting the minimum frequency of values in each normal interval.Finally, the relations (a,Ia) are saved in memory storage. Whenever adata record is to be evaluated by the smart-agent technology, the valueof the field “a” in the data record is compared to the normal intervalscreated in “Ia” to determine if the value of the field “a” is outsidethe normal range of values for that given field.

If the field “a” is determined to be numeric, then the list “La” ofdistinct couples (“vai”,nai) is ordered starting with the smallest valueVa. At step 122, the first element e=(va1,na1) is removed from the list“La”, and an interval NI=[va1,va1] is formed. At step 124, the intervalNI is enlarged to NI=[Va1,vak] until Vak−Va1>Θdist, where Θdistrepresents the maximum width of a normal interval. Θdist is computed asΘdist=(maxa−mina)/nmax, where nmax is a parameter specified by the userto denote the maximum number of intervals for each field in a trainingtable. The values that are too dissimilar are not grouped together inthe same interval.

The total cardinality “na” of all the values from “va1” to “vak” iscompared to “Θmin” to determine the final value of the list of normalintervals “Ia”. If the list “Ia” is not empty, the relations (a,Ia) aresaved. Whenever a data record is to be evaluated by the smart-agenttechnology, the value of the field “a” in the data record is compared tothe normal intervals created in “Ia” to determine if the value of thefield “a” is outside the normal range of values for that given field. Ifthe value of the field “a” is outside the normal range of values forthat given field, a warning is generated to indicate that the datarecord is likely fraudulent.

FIG. 19 is a flowchart of an algorithm 1900 for determining dependenciesbetween each field in a training table. A list Lx of couples (vxi,nxi)is created for each field “x” in a training table. The values vxi in Lxfor which (nxi/nT)>Θx are determined, where nT is the total number ofrecords in a training table and Θx is a threshold value specified by theuser. In a preferred embodiment, Θx has a default value of 1%. At step132, a list Ly of couples (vyi,nyi) for each field y, Y≠X, is created.The number of records nij where (x=xi) and (y=yj) are retrieved from atraining table. If the relation is significant, that is if(nij/nxi)>Θxy, where Θxy is a threshold value specified by the user whenthe relation (X=xi)⇔(Y=yj) is saved with the cardinalities nxi, nyj, andnij, and accuracy (nij/nxi). In a preferred embodiment, Θxy has adefault value of 85%.

All the relations are saved in a tree made with four levels of hashtables to increase the speed of the smart-agent technology. The firstlevel in the tree hashes the field name of the first field, the secondlevel hashes the values for the first field implying some correlationswith other fields, the third level hashes the field name with whom thefirst field has some correlations, and finally, the fourth level in thetree hashes the values of the second field that are correlated with thevalues of the first field. Each leaf of the tree represents a relation,and at each leaf, the cardinalities nxi, nyj, and nij are stored. Thisallows the smart-agent technology to be automatically updated and todetermine the accuracy, prevalence, and the expected predictability ofany given relation formed in a training table.

FIG. 20 is a flowchart of an algorithm 2000 for verifying thedependencies between the fields in an input record. For each field “x”in the input record corresponding to an electronic transaction, therelations starting with [(X=xi)⇔ . . . ] are found in the smart-agenttechnology tree. For all the other fields “y” in a transaction, therelations [(X=xi)⇔(Y=v)] are found in the tree. A warning is triggeredanytime Yj≠V. The warning indicates that the values of the fields in theinput record are not coherent with the known field dependencies, whichis often a characteristic of fraudulent transactions.

FIG. 21 is a flowchart of an algorithm 2100 for updating smart-agents.The total number of records nT in a training table is incremented by anew number of input records to be included in the update of thesmart-agent technology. For the first relation (X=xi)⇔(Y=yj) previouslycreated in the technology, the parameters nxi, nyj, and nij areretrieved, and, nxi, nyj, and nij are respectively incremented. Therelation is verified to see if it is still significant for including itin a smart-agent tree. If the relation is not significant, then it isremoved from the tree. Finally, a check is performed to see if there aremore previously created relations (X=xi)⇔(Y=yj>] in the technology. Ifthere are, then algorithm 2100 goes back and iterates until there are nomore relations in the tree to be updated.

Data Mining Technology

FIG. 22 represents one way to implement a data mining algorithm as insteps 130-132 (FIG. 1). More detail is incorporated herein by referenceto Adjaoute '592, and especially that relating to its FIG. 22. Here thedata mining algorithm and the data tree of step 131 are highlyadvantaged by having been trained by the enriched data 124. Such resultsin far superior training compared to conventional training with datalike raw data 106.

Data mining identifies several otherwise hidden data relationships,including: (1) associations, wherein one event is correlated to anotherevent such as purchase of gourmet cooking books close to the holidayseason; (2) sequences, wherein one event leads to another later eventsuch as purchase of gourmet cooking books followed by the purchase ofgourmet food ingredients; (3) classification, and, e.g., the recognitionof patterns and a resulting new organization of data such as profiles ofcustomers who make purchases of gourmet cooking books; (4) clustering,e.g., finding and visualizing groups of facts not previously known; and(5) forecasting, e.g., discovering patterns in the data that can lead topredictions about the future.

One goal of data mining technology is to create a decision tree based onrecords in a training database to facilitate and speed up the case-basedreasoning technology. The case-based reasoning technology determines ifa given input record associated with an electronic transaction issimilar to any typical records encountered in a training table. Eachrecord is referred to as a “case”. If no similar cases are found, awarning is issued to flag the input record. The data mining technologycreates a decision tree as an indexing mechanism for the case-basedreasoning technology. Data mining technology can also be used toautomatically create and maintain business rules for a rule-basedreasoning technology.

The decision tree is an “N-ary” tree, wherein each node contains asubset of similar records in a training database. (An N-ary tree is atree in which each node has no more than N children.) In preferredembodiments, the decision tree is a binary tree. Each subset is splitinto two other subsets, based on the result of an intersection betweenthe set of records in the subset and a test on a field. For symbolicfields, the test is if the values of the fields in the records in thesubset are equal, and for numeric fields, the test is if the values ofthe fields in the records in the subset are smaller than a given value.Applying the test on a subset splits the subset in two others, dependingon if they satisfy the test or not. The newly created subsets become thechildren of the subset they originated from in the tree. The data miningtechnology creates the subsets recursively until each subset that is aterminal node in the tree represents a unique output class.

FIG. 22 is a flowchart of an algorithm 2200 for generating the datamining technology to create a decision tree based on similar records ina training table. Sets “S”, R, and U are initialized. Set “S” is a setthat contains all the records in a training table, set R is the root ofthe decision tree, and set U is the set of nodes in the tree that arenot terminal nodes.

Both R and U are initialized to contain all the records in a trainingtable. Next, a first node Ni (containing all the records in the trainingdatabase) is removed from U. The triplet (field,test,value) that bestsplits the subset Si associated with the node Ni into two subsets isdetermined. The triplet that best splits the subset Si is the one thatcreates the smallest depth tree possible, that is, the triplet wouldeither create one or two terminal nodes, or create two nodes that, whensplit, would result in a lower number of children nodes than othertriplets. The triplet is determined by using an impurity function suchas Entropy or the Gini index to find the information conveyed by eachfield value in the database. The field value that conveys the leastdegree of information contains the least uncertainty and determines thetriplet to be used for splitting the subsets.

A node Nij is created and associated to the first subset Sij formed. Thenode Nij is then linked to node Ni, and named with the triplet(field,test,value). Next, a check is performed to evaluate if all therecords in subset Sij at node Nij belong to the same output classc_(ij). If they do, then the prediction of node Nij is set to c_(ij). Ifnot, then node Nij is added to U. The algorithm then proceeds to tocheck if there are still subsets Sij to be split in the tree, and if so,the algorithm goes back. When all subsets have been associated withnodes, the algorithm continues for the remaining nodes in U until U isdetermined to be empty.

FIG. 23 represents a decision tree 2300 in an example for a database2301 maintained by an insurance company to predict a risk of aninsurance contract based on a type of a car and an age of its driver.Database 2301 has three fields: (1) age, (2) car type, and (3) risk. Therisk field is the output class that needs to be predicted for any newincoming data record. The age and the car type fields are used asinputs. The data mining technology builds a decision tree, e.g., onethat can ease a search of cases in case-based reasoning to determine ifan incoming transaction fits any profiles of similar cases existing inits database. The decision tree starts with a root node N0 (2302). Oncethe data records in database 2301 are analyzed, a test 2303 isdetermined that best splits database 2301 into two nodes, a node N1(2304) with a subset 2305, and a node N2 (2306) with a subset 2307. NodeN1 (2304) is a terminal node type, since all data records in subset 2305have the same class output that indicates a high insurance risk fordrivers that are younger than twenty-five.

The data mining technology then splits a node N2 (2306) into twoadditional nodes, a node N3 (2308) containing a subset 2309, and a nodeN4 (2310) containing a subset 2311. Both nodes N3 (2308) and N4 (2310)were split from node N2 (2306) based on a test 2312, that checks if thecar type is a sports car. As a result, nodes N3 (2308) and N4 (2310) areterminal nodes, with node N3 (2308) signifying a high insurance risk andnode N4 (2310) representing a low insurance risk.

The decision tree formed by the data mining technology is preferably adepth two binary tree, significantly reducing the size of the searchproblem for the case-based reasoning technology. Instead of searchingfor similar cases to an incoming data record associated with anelectronic transaction in the entire database, the case-based reasoningtechnology only has to use the predefined index specified by thedecision tree.

Case-Based Reasoning Technology

The case-based reasoning technology stores past data records or cases toidentify and classify a new case. It reasons by analogy andclassification. Case-based reasoning technologies create a list ofgeneric cases that best represent the cases in its training table. Atypical case is generated by computing similarities between all thecases in its training table and selecting those cases that bestrepresent distinct cases. Whenever a new case is presented in a record,a decision tree is to determine if any input record it has on file inits database is similar to something encountered in its training table.

FIG. 24 is a flowchart of an algorithm for generating a case-basedreasoning technology used later to find a record in a database that bestresembles an input record corresponding to a new transaction. An inputrecord is propagated through a decision tree according to tests definedfor each node in the tree until it reaches a terminal node. If an inputrecord is not fully defined, that is, the input record does not containvalues assigned to certain fields, and then the input record ispropagated to a last node in a tree that satisfies all the tests. Thecases retrieved from this node are all the cases belonging to the node'sleaves.

A similarity measure is computed between the input record and each oneof the cases retrieved. The similarity measure returns a value thatindicates how close the input record is to a given case retrieved. Thecase with the highest similarity measure is then selected as the casethat best represents the input record. The solution is revised by usinga function specified by the user to modify any weights assigned tofields in the database. Finally, the input record is included in thetraining database and the decision tree is updated for learning newpatterns.

FIG. 25 represents a table 2500 of global similarity measures useful bycase-based reasoning technology. The table lists an example of sixsimilarity measures that could be used in case-based reasoning tocompute a similarity between cases. The Global Similarity Measure is acomputation of the similarity between case values V_(1i) and V_(2i) andare based on local similarity measures sim_(i) for each field y_(i). Theglobal similarity measures may also employ weights w_(i) for differentfields.

FIG. 26 is an example table of Local Similarity Measures useful incase-based reasoning. Table 2600 lists fourteen different LocalSimilarity Measures that is used by the global similarity measureslisted. The local similarity measures depend on the field type andvaluation. The field type is: (1) symbolic or nominal; (2) ordinal, whenthe values are ordered; (3) taxonomic, when the values follow ahierarchy; and (4) numeric, which can take discrete or continuousvalues. The Local Similarity Measures are based on a number ofparameters, including: (1) the values of a given field for two cases, V₁and V₂; (2) the lower (V₁− and V₂−) and higher (V₁+ and V₂+) limits ofV₁ and V₂; (3) the set of all values that is reached by the field; (4)the central points of V₁ and V₂, V1c and V2c; (5) the absolute value“ec” of a given interval; and (6) the height “h” of a level in ataxonomic descriptor.

Genetic Algorithms Technology

Genetic algorithms technologies include a library of genetic algorithmsthat incorporate biological evolution concepts to find if a class istrue, e.g., a business transaction is fraudulent, there is networkintrusion, etc. Genetic algorithms is used to analyze many data recordsand predictions generated by other predictive technologies and recommendits own efficient strategies for quickly reaching a decision.

Rule-Based Reasoning, Fuzzy Logic, and Constraint ProgrammingTechnologies

Rule-based reasoning, fuzzy logic, and constraint programmingtechnologies include business rules, constraints, and fuzzy rules todetermine the output class of a current data record, e.g., if anelectronic transaction is fraudulent. Such business rules, constraints,and fuzzy rules are derived from past data records in a trainingdatabase or created from predictable but unusual data records that mayarise in the future. The business rules is automatically created by thedata mining technology, or they is specified by a user. The fuzzy rulesare derived from business rules, with constraints specified by a userthat specify which combinations of values for fields in a database areallowed and which are not.

FIG. 27 represents a rule 2700 for use with the rule-based reasoningtechnology. Rule 2700 is an IF-THEN rule containing an antecedent andconsequence. The antecedent uses tests or conditions on data records toanalyze them. The consequence describes the actions to be taken if thedata satisfies the tests. An example of rule 2700 that determines if acredit card transaction is fraudulent for a credit card belonging to asingle user may include “IF (credit card user makes a purchase at 8 AMin New York City) and (credit card user makes a purchase at 8 AM inAtlanta) THEN (credit card number may have been stolen)”. The use of thewords “may have been” in the consequence sets a trigger that other rulesneed to be checked to determine if the credit card transaction is indeedfraudulent or not.

FIG. 28 represents a fuzzy rule 2800 to specify if a person is tall.Fuzzy rule 2800 uses fuzzy logic to handle the concept of partial truth,e.g., truth values between “completely true” and “completely false” fora person who may or may not be considered tall. Fuzzy rule 2800 containsa middle ground, in addition to the binary patterns of yes/no. Fuzzyrule 2800 derives here from an example rule such as

-   -   “IF height>6 ft., THEN person is tall”. Fuzzy logic derives        fuzzy rules by “fuzzification” of the antecedents and        “de-fuzzification” of the consequences of business rules.

FIG. 29 is a flowchart of an algorithm 2900 for applying rule-basedreasoning, fuzzy logic, and constraint programming to determine if anelectronic transaction is fraudulent. The rules and constraints arespecified by a user-service consumer and/or derived by data miningtechnology. The data record associated with a current electronictransaction is matched against the rules and the constraints todetermine which rules and constraints apply to the data. The data istested against the rules and constraints to determine if the transactionis fraudulent. The rules and constraints are updated to reflect the newelectronic transaction.

The present inventor, Dr. Akli Adjaoute and his Company, Brighterion,Inc. (San Francisco, Calif.), have been highly successful in developingfraud detection computer models and applications for banks, paymentprocessors, and other financial institutions. In particular, these frauddetection computer models and applications are trained to follow anddevelop an understanding of the normal transaction behavior of singleindividual accountholders. Such training is sourced from multi-channeltransaction training data or single-channel. Once trained, the frauddetection computer models and applications are highly effective whenused in real-time transaction fraud detection that comes from the samechannels used in training.

Some embodiments of the present invention train several single-channelfraud detection computer models and applications with correspondingdifferent channel training data. The resulting, differently trainedfraud detection computer models and applications are run several inparallel so each can view a mix of incoming real-time transactionmessage reports flowing in from broad diverse sources from their uniqueperspectives. One may compute a “hit” the others will miss, and that'sthe point.

If one differently trained fraud detection computer model andapplication produces a hit, it is considered herein a warning that theaccountholder has been compromised or has gone rogue. The otherdifferently trained fraud detection computer models and applicationsshould be and are sensitized to expect fraudulent activity from thisaccountholder in the other payment transaction channels. Hits across allchannels are added up and too many is reason to shut down all paymentchannels for the affected accountholder.

In general, a method for cross-channel financial fraud protectioncomprises training a variety of real-time, risk-scoring fraud modeltechnologies with training data selected for each from a commontransaction history. This then can specialize each member in themonitoring of a selected channel. After training, the heterogeneousreal-time, risk-scoring fraud model technologies are arranged inparallel so that all receive the same mixed channel flow of real-timetransaction data or authorization requests.

Parallel, diversity trained, real-time, risk-scoring fraud modeltechnologies are hosted on a network server platform for real-time riskscoring of a mixed channel flow of real-time transaction data orauthorization requests. Risk thresholds are directly updated forparticular accountholders in every member of the parallel arrangement ofdiversity trained real-time, risk-scoring fraud model technologies whenany one of them detects a suspicious or outright fraudulent transactiondata or authorization request for the accountholder. So, a compromise,takeover, or suspicious activity of an accountholder's account in anyone channel is thereafter prevented from being employed to perpetrate afraud in any of the other channels.

Such method for cross-channel financial fraud protection can furtherinclude building a population of real-time, long-term, and recursiveprofiles for each accountholder in each of the real-time, risk-scoringfraud model technologies. Then during real-time use, maintaining andupdating the real-time, long-term, and recursive profiles for eachaccountholder in each and all of the real-time, risk-scoring fraud modeltechnologies with newly arriving data.

If during real-time use a compromise, takeover, or suspicious activityof the accountholder's account in any one channel is detected, thenupdating the real-time, long-term, and recursive profiles for eachaccountholder in each and all of the other real-time, risk-scoring fraudmodel technologies to further include an elevated risk flag. Theelevated risk flags are included in a final risk score calculation 728for the current transaction or authorization request.

Fifteen-minute vectors are a way to cross pollenate risks calculated inone channel with the others. The 15-minute vectors can represent anamalgamation or fuzzification of transactions in all channels, orchannel-by channel. Once a 15-minute vector has aged, it is shifted intoa 100-minute vector, a one-hour vector, and a whole day vector by asimple shift register means. These vectors represent velocity countsthat is very effective in catching fraud as it is occurring in realtime.

In every case, embodiments of the present invention include adaptivelearning that combines three learning techniques to evolve theartificial intelligence classifiers. First is the automatic creation ofprofiles, or smart-agents, from historical data, e.g., long-termprofiling. The second is real-time learning, e.g., enrichment of thesmart-agents based on real-time activities. The third is adaptivelearning carried by incremental learning algorithms.

For example, two years of historical credit card transactions dataneeded over twenty seven terabytes of database storage. A smart-agent iscreated for each individual card in that data in a first learning step,e.g., long-term profiling. Each profile is created from the card'sactivities and transactions that took place over the two year period.Each profile for each smart-agent comprises knowledge extractedfield-by-field, such as merchant category code (MCC), time, amount foran mcc over a period of time, recursive profiling, zip codes, type ofmerchant, monthly aggregation, activity during the week, weekend,holidays, Card not present (CNP) versus card present (CP), domesticversus cross-border, etc. this profile will highlights all the normalactivities of the smart-agent (specific payment card).

Smart-agent technology learns specific behaviors of each cardholder andcreates a smart-agent to follow the behavior of each cardholder. Becauseit learns from each activity of a cardholder, the smart-agent updatesits profiles and makes effective changes at runtime. It is the onlytechnology with an ability to identify and stop, in real-time,previously unknown fraud schemes. It has the highest detection rate andlowest false positives because it separately follows and learns thebehaviors of each cardholder.

Smart-agents have a further advantage in data size reduction. Once, saytwenty-seven terabytes of historical data is transformed intosmart-agents, only 200-gigabytes is needed to represent twenty-sevenmillion distinct smart-agents corresponding to all the distinctcardholders.

Incremental learning technologies are embedded in the machine algorithmsand smart-agent technology to continually re-train from any falsepositives and negatives that occur along the way. Each corrects itselfto avoid repeating the same classification errors. Data mining logicincrementally changes the decision trees by creating a new link orupdating the existing links and weights. Neural networks update theweight matrix, and case based reasoning logic updates generic cases orcreates new ones. Smart-agents update their profiles by adjusting thenormal/abnormal thresholds, or by creating exceptions.

Although particular embodiments of the present invention have beendescribed and illustrated, such is not intended to limit the invention.Modifications and changes will no doubt become apparent to those skilledin the art, and it is intended that the invention only be limited by thescope of the appended claims.

We claim:
 1. A computer-implemented method for classifying businessrecords, comprising: receiving, at one or more processors, a businessrecord including a key identifying an entity and a plurality of datafields storing business information; accessing, via the one or moreprocessors, a smart-agent predictive model corresponding to the key;generating an enriched business record for consumption by thesmart-agent predictive model by— generating, at the one or moreprocessors, at least one substitute datum for at least one correspondingdata field of the plurality of data fields; calculating, via the one ormore processors, at least one combined data value, each of the at leastone combined data values being calculated based on business informationof at least two of the plurality of data fields; producing, via the oneor more processors, a prediction class output of the smart-agentpredictive model based on the enriched business record; accessing atleast one additional predictive model, each at least one additionalpredictive model being constructed according to one of: a neuralnetwork, case based reasoning, a decision tree, a genetic algorithm,fuzzy logic, and rules and constraints; generating, via the one or moreprocessors, at least one additional predictive class output of the atleast one predictive model; and determining, via the one or moreprocessors, a classification of the business record based at least inpart on the prediction class output and the at least one additionalpredictive class output.
 2. The computer-implemented method of claim 1,wherein generating the enriched business record includes executing, viathe one or more processors, a triple-DES decoding algorithm to decryptthe business information.
 3. The computer-implemented method of claim 2,wherein the business record is received over a communication network bythe one or more processors from a remote computing device using at leastone of transport layer security and secure sockets layer cryptographicprotocols.
 4. The computer-implemented method of claim 3, wherein thesmart-agent predictive model is embodied by an encrypted XML document ina IFM format stored in non-transitory computer-readable media.
 5. Thecomputer-implemented method of claim 4, wherein the smart-agentpredictive model stores one or more relationships between fields of theplurality of data fields in the form of a multi-level hash table tree.6. The computer-implemented method of claim 5, wherein the businessrecord is a transaction record corresponding to a real-time request forapproval of a transaction and the prediction class output represents aconclusion regarding whether the transaction is likely fraudulent. 7.The computer-implemented method of claim 1, further comprisingproducing, via the one or more processors, a confidence outputcorresponding to the prediction class output of the smart-agentpredictive model.
 8. The computer-implemented method of claim 1, whereinthe at least one substitute datum is generated by execution of at leastone of a contextual dictionary algorithm and a context mining algorithm.9. The computer-implemented method of claim 1, further comprisingfailing to locate a matching model using the key and, based on thefailure to locate, building the smart-agent predictive model.
 10. Thecomputer-implemented method of claim 1, wherein the smart-agentpredictive model comprises a plurality of profiles, further comprisingupdating, via the one or more processors, the plurality of profilesbased on the enriched business record.
 11. A server for classifyingbusiness records, comprising: one or more processors; non-transitorycomputer-readable storage media having computer-executable instructionsstored thereon, wherein when executed by the one or more processors thecomputer-readable instructions cause the one or more processors to—receive a business record including a key identifying an entity and aplurality of data fields storing business information; access asmart-agent predictive model corresponding to the key; generate anenriched business record for consumption by the smart-agent predictivemodel by— generating at least one substitute datum for at least onecorresponding data field of the plurality of data fields; calculating atleast one combined data value, each of the at least one combined datavalues being calculated based on business information of at least two ofthe plurality of data fields; produce a prediction class output of thesmart-agent predictive model based on the enriched business record;access at least one additional predictive model, each at least oneadditional predictive model being constructed according to one of: aneural network, case based reasoning, a decision tree, a geneticalgorithm, fuzzy logic, and rules and constraints; generate at least oneadditional predictive class output of the at least one predictive model;and determine a classification of the business record based at least inpart on the prediction class output and the at least one additionalpredictive class output.
 12. The server of claim 11, wherein generatingthe enriched business record includes executing a triple-DES decodingalgorithm to decrypt the business information.
 13. The server of claim12, wherein the business record is received over a communication networkby the server from a remote computing device using at least one oftransport layer security and secure sockets layer cryptographicprotocols.
 14. The server of claim 13, wherein the smart-agentpredictive model is embodied by an encrypted XML document in a IFMformat stored in the non-transitory computer-readable storage media. 15.The server of claim 14, wherein the smart-agent predictive model storesone or more relationships between fields of the plurality of data fieldsin the form of a multi-level hash table tree.
 16. The server of claim15, wherein the business record is a transaction record corresponding toa real-time request for approval of a transaction and the predictionclass output represents a conclusion regarding whether the transactionis likely fraudulent.
 17. The server of claim 11, wherein execution ofthe computer-readable instructions further causes the one or moreprocessors to produce a confidence output corresponding to theprediction class output of the smart-agent predictive model.
 18. Theserver of claim 11, wherein the at least one substitute datum isgenerated by execution of at least one of a contextual dictionaryalgorithm and a context mining algorithm.
 19. The server of claim 11,wherein execution of the computer-readable instructions further causesthe one or more processors to, upon a failure to locate a matching modelusing the key, build the smart-agent predictive model.
 20. The server ofclaim 11, wherein the smart-agent predictive model comprises a pluralityof profiles and execution of the computer-readable instructions furthercauses the one or more processors to update the plurality of profilesbased on the enriched business record.